﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using DataAccessLayer;
using Entities;
using BusinessLogicLayer;
using BusinessLogicLayer.Validation;

namespace QuanLyTKB_TienDoGD.QuanLyTKBDeNghi
{
    public partial class frmTaoTKBDeNghi : Office2007Form
    {
        IRepository<QLTKBDeNghi> _repository;
        QLyTKBDeNghiManager _manager;
        QLTKBDeNghi _tkb;
        frmQLTKBDeNghi frmtkbDN;
        public bool _isUpdate;

        public frmTaoTKBDeNghi()
        {
            InitializeComponent();
        }
        

        public frmTaoTKBDeNghi(QLyTKBDeNghiManager _ma, frmQLTKBDeNghi frm, QLTKBDeNghi ql = null)
            : this()
        {
            this._manager = _ma;
            this._tkb = ql;
            _isUpdate = (ql != null);
            this.frmtkbDN = frm;
        }

        private void frmTaoTKBDeNghi_Load(object sender, EventArgs e)
        {
            dtpNgayTao.Value = DateTime.Now.Date;
            if (_isUpdate)
            {
                txtMaDN.Text = _tkb.MaDN;
                nrdTuan.Value = Convert.ToInt32(_tkb.Tuan.ToString());
                dtpTuNgay.Value = _tkb.TuNgay;
                txtGhiChu.Text = _tkb.GhiChu;
                dtpNgayTao.Value = _tkb.NgayLap;
            }
                _repository = new Repository<QLTKBDeNghi>();
                _manager = new QLyTKBDeNghiManager(_repository);               
        }


        private void dtpTuNgay_TextChanged(object sender, EventArgs e)
        {
           DateTime TuNgay = dtpTuNgay.Value;
            if (TuNgay.DayOfWeek != DayOfWeek.Monday)
            {
                MessageBox.Show("Ngày đầu phải là thứ 2 hàng tuần", "Chọn ngày không hợp lệ");
                dtpTuNgay.ResetText();
            }
        }

        

        private void btnMacDinh_Click(object sender, EventArgs e)
        {
            txtMaDN.ResetText();
            txtGhiChu.ResetText();
            nrdTuan.Value = 0;
            dtpTuNgay.ResetText();
            dtpNgayTao.ResetText();
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            
                _tkb = new QLTKBDeNghi();

                _tkb.MaDN = txtMaDN.Text;
                _tkb.Tuan = Convert.ToInt32(nrdTuan.Value);
                _tkb.TuNgay = dtpTuNgay.Value;
                _tkb.GhiChu = txtGhiChu.Text;
                _tkb.NgayLap = dtpNgayTao.Value;
                var vResult = _manager.Validate(_tkb);
                if (vResult.Valid)
                {
                    var aResult = _manager.InsertOrUpdate(_tkb);
                    if (aResult.Success)
                    {
                        frmtkbDN.btnLamMoi.PerformClick();
                        if (_isUpdate)
                        {
                            MessageBox.Show("Cập nhật quản lý TKB đề nghị thành công.", "Thông báo");
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Thêm quản lý TKB đề nghị thành công.", "Thông báo");
                            btnMacDinh.PerformClick();
                        }          
                    }
                    else
                        MessageBox.Show(aResult.GetErrosMessages());
                }
                else MessageBox.Show(vResult.ToString());
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}

        



    


